15 research outputs found

    A Concurrency-Optimal Binary Search Tree

    Full text link
    The paper presents the first \emph{concurrency-optimal} implementation of a binary search tree (BST). The implementation, based on a standard sequential implementation of an internal tree, ensures that every \emph{schedule} is accepted, i.e., interleaving of steps of the sequential code, unless linearizability is violated. To ensure this property, we use a novel read-write locking scheme that protects tree \emph{edges} in addition to nodes. Our implementation outperforms the state-of-the art BSTs on most basic workloads, which suggests that optimizing the set of accepted schedules of the sequential code can be an adequate design principle for efficient concurrent data structures

    Parallel Combining: Benefits of Explicit Synchronization

    Get PDF
    A parallel batched data structure is designed to process synchronized batches of operations on the data structure using a parallel program. In this paper, we propose parallel combining, a technique that implements a concurrent data structure from a parallel batched one. The idea is that we explicitly synchronize concurrent operations into batches: one of the processes becomes a combiner which collects concurrent requests and initiates a parallel batched algorithm involving the owners (clients) of the collected requests. Intuitively, the cost of synchronizing the concurrent calls can be compensated by running the parallel batched algorithm. We validate the intuition via two applications. First, we use parallel combining to design a concurrent data structure optimized for read-dominated workloads, taking a dynamic graph data structure as an example. Second, we use a novel parallel batched priority queue to build a concurrent one. In both cases, we obtain performance gains with respect to the state-of-the-art algorithms

    The splay-list: A distribution-adaptive concurrent skip-list

    Get PDF
    The design and implementation of efficient concurrent data structures have seen significant attention. However, most of this work has focused on concurrent data structures providing good \emph{worst-case} guarantees. In real workloads, objects are often accessed at different rates, since access distributions may be non-uniform. Efficient distribution-adaptive data structures are known in the sequential case, e.g. the splay-trees; however, they often are hard to translate efficiently in the concurrent case. In this paper, we investigate distribution-adaptive concurrent data structures and propose a new design called the splay-list. At a high level, the splay-list is similar to a standard skip-list, with the key distinction that the height of each element adapts dynamically to its access rate: popular elements ``move up,'' whereas rarely-accessed elements decrease in height. We show that the splay-list provides order-optimal amortized complexity bounds for a subset of operations while being amenable to efficient concurrent implementation. Experimental results show that the splay-list can leverage distribution-adaptivity to improve on the performance of classic concurrent designs, and can outperform the only previously-known distribution-adaptive design in certain settings

    Π¦ΠΈΡ‚ΠΎΠΊΠΈΠ½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ² с сочСтанной ΠΊΠ°Ρ€Π΄ΠΈΠΎ- ΠΈ ΠΎΡ„Ρ‚Π°Π»ΡŒΠΌΠΎΠΏΠ°Ρ‚ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ

    Get PDF
    БочСтанная кардиологичСская ΠΈ ΠΎΡ„Ρ‚Π°Π»ΡŒΠΌΠΎΠ»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠ°Ρ патология ΠΈΠΌΠ΅Π΅Ρ‚ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Ρ‘Π½Π½ΠΎΡΡ‚ΡŒ Π² ΡΡ‚Π°Ρ€ΡˆΠΈΡ… возрастных Π³Ρ€ΡƒΠΏΠΏΠ°Ρ… насСлСния ΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅ патогСнСтичСскиС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹, ΠΊ числу ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…, бСзусловно, относится Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ Ρ†ΠΈΡ‚ΠΎΠΊΠΈΠ½ΠΎΠ²ΠΎΠ³ΠΎ профиля. Однако Ρ†ΠΈΡ‚ΠΎΠΊΠΈΠ½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ ΠΊΡ€ΠΎΠ²ΠΈ практичСски Π½Π΅ анализировался Ρƒ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΠΆΠΈΠ»ΠΎΠ³ΠΎ возраста с сочСтанной ΠΈΡˆΠ΅ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΉ болСзнью сСрдца с Π³Π»Π°ΡƒΠΊΠΎΠΌΠΎΠΉ. ЦСль исслСдования – ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ†ΠΈΡ‚ΠΎΠΊΠΈΠ½ΠΎΠ²ΠΎΠ³ΠΎ профиля Ρƒ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ² с сочСтанной ΠΊΠ°Ρ€Π΄ΠΈΠΎ- ΠΈ ΠΎΡ„Ρ‚Π°Π»ΡŒΠΌΠΎΠΏΠ°Ρ‚ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ. ИсслСдованиС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π² Вамбовском Ρ„ΠΈΠ»ΠΈΠ°Π»Π΅ МНВК Β«ΠœΠΈΠΊΡ€ΠΎΡ…ΠΈΡ€ΡƒΡ€Π³ΠΈΡ Π³Π»Π°Π·Π° ΠΈΠΌΠ΅Π½ΠΈ Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΠΊΠ° Π‘.Н. Π€Π΅Π΄ΠΎΡ€ΠΎΠ²Π°Β» Π² Π΄Π²ΡƒΡ… Π³Ρ€ΡƒΠΏΠΏΠ°Ρ…: ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Ρ‹ с сочСтанной ΠΈΡˆΠ΅ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΉ болСзнью сСрдца с Π³Π»Π°ΡƒΠΊΠΎΠΌΠΎΠΉ (n=58 Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ) ΠΈ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Ρ‹ с ΠΈΡˆΠ΅ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΉ болСзнью сСрдца (n=49 Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ), ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… Π² ΠΎΠ±ΠΎΠΈΡ… случаях ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ возраст 60-74 Π»Π΅Ρ‚. Диагностика Π³Π»Π°ΡƒΠΊΠΎΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° Π² соотвСтствии с критСриями Β«ΠΠ°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ руководства ΠΏΠΎ Π³Π»Π°ΡƒΠΊΠΎΠΌΠ΅Β». Для диагностики ΠΈΡˆΠ΅ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΉ Π±ΠΎΠ»Π΅Π·Π½ΠΈ сСрдца Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ элСктрокардиографичСскиС, эхокардиографичСскиС, рСнтгСнографичСскиС, энзимныС исслСдования. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ†ΠΈΡ‚ΠΎΠΊΠΈΠ½ΠΎΠ² Π² ΠΏΠ»Π°Π·ΠΌΠ΅ ΠΊΡ€ΠΎΠ²ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π½Π° Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π΅ Β«Beckton Dickinson FACS Canto 2 (USA)Β» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° CBA (BD Biosciences, USA). Π‘Ρ€Π΅Π΄ΠΈ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ² сравниваСмых Π³Ρ€ΡƒΠΏΠΏ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ возраста выявлСны достовСрныС различия ΠΏΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ Ρ†ΠΈΡ‚ΠΎΠΊΠΈΠ½ΠΎΠ², Π° ΠΈΠΌΠ΅Π½Π½ΠΎ прСимущСствСнноС ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ Ρƒ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ² с сочСтанной ΠΊΠ°Ρ€Π΄ΠΈΠΎ- ΠΈ ΠΎΡ„Ρ‚Π°Π»ΡŒΠΌΠΎΠΏΠ°Ρ‚ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π³Ρ€ΡƒΠΏΠΏΡ‹ с ΠΈΡˆΠ΅ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΉ болСзнью сСрдца. ΠŸΠΎΠ²Ρ‹ΡΠΈΠ»ΠΎΡΡŒ Π² ΠΏΠ»Π°Π·ΠΌΠ΅ ΠΊΡ€ΠΎΠ²ΠΈ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ² с ΠΈΡˆΠ΅ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΉ болСзнью сСрдца, сочСтанной с Π³Π»Π°ΡƒΠΊΠΎΠΌΠΎΠΉ, содСрТаниС IL-5, IL-12, IFN-Ξ³, TNF-Ξ± c достовСрным Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ с ΠΈΡˆΠ΅ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΉ болСзнью сСрдца. Однако Π½Π°ΠΈΠ²Ρ‹ΡΡˆΠ΅Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ срСди рассматриваСмых Ρ†ΠΈΡ‚ΠΎΠΊΠΈΠ½ΠΎΠ² Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎ для IL-6 ΠΈ IL-17, ΡΠΎΡΡ‚Π°Π²ΠΈΠ²ΡˆΠ΅Π΅ Ρƒ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ² с сочСтанной ΠΊΠ°Ρ€Π΄ΠΈΠΎ- ΠΈ ΠΎΡ„Ρ‚Π°Π»ΡŒΠΌΠΎΠΏΠ°Ρ‚ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ 23,8Β±1,1 ΠΏΠ³/ΠΌΠ» ΠΈ 20,2Β±1,7 ΠΏΠ³/ΠΌΠ» ΠΏΡ€ΠΎΡ‚ΠΈΠ² 6,3Β±0,3 ΠΏΠ³/ΠΌΠ» ΠΈ 7,9Β±0,5 ΠΏΠ³/ΠΌΠ» соотвСтствСнно Ρƒ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ² с ΠΈΡˆΠ΅ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΉ болСзнью сСрдца. ВмСстС с Ρ‚Π΅ΠΌ сущСствСнно снизился ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ IL-4 ΠΈ IL-10 Π΄ΠΎ 2,2Β±0,2 ΠΏΠ³/ΠΌΠ» ΠΈ 6,4Β±0,4 ΠΏΠ³/ΠΌΠ» ΠΏΡ€ΠΎΡ‚ΠΈΠ² 4,8Β±0,3 ΠΏΠ³/ΠΌΠ» ΠΈ 11,9Β±0,6 ΠΏΠ³/ΠΌΠ». ИспользованиС логистичСской рСгрСссии ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ риска ΠΈΠ·ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΡ‚ΠΎΠΊΠΈΠ½ΠΎΠ² ΠΊΡ€ΠΎΠ²ΠΈ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ нСскоррСктированныС ΠΈ скоррСктированныС ΠΌΠΎΠ΄Π΅Π»ΠΈ, согласно ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ тСсная ассоциация с риском развития сочСтанной ΠΈΡˆΠ΅ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΉ Π±ΠΎΠ»Π΅Π·Π½ΠΈ сСрдца с Π³Π»Π°ΡƒΠΊΠΎΠΌΠΎΠΉ установлСна для IL-6 ΠΈ IL-17, с Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°ΠΌΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ риска Π² нСскоррСктированной ΠΌΠΎΠ΄Π΅Π»ΠΈ 2,87 ΠΈ 2,71 соотвСтствСнно (p<0,001). Однако Π² скоррСктированной ΠΌΠΎΠ΄Π΅Π»ΠΈ ассоциация IL-6 с сочСтанной ΠΈΡˆΠ΅ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΉ болСзнью сСрдца с Π³Π»Π°ΡƒΠΊΠΎΠΌΠΎΠΉ ΠΏΠΎΠ²Ρ‹ΡΠΈΠ»Π°ΡΡŒ Π΄ΠΎ 2,92 (Π”Π˜ 2,80-3,27, Ρ€=0,004), Π° IL-17 ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠ»ΠΎΡΡŒ Π΄ΠΎ 2,64 (Π”Π˜ 2,51-2,85, Ρ€=0,003). УстановлСна Ρ‚Π°ΠΊΠΆΠ΅ достовСрная ассоциация IL-4, IL-5, IL-12, IFN-Ξ³ ΠΈ TNF-Ξ± с сочСтанной ΠΈΡˆΠ΅ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΉ болСзнью сСрдца с Π³Π»Π°ΡƒΠΊΠΎΠΌΠΎΠΉ. ИсслСдованиС продСмонстрировало Π½ΠΎΠ²Ρ‹Π΅ ассоциации систСмных Ρ†ΠΈΡ‚ΠΎΠΊΠΈΠ½ΠΎΠ² с риском развития сочСтанной ΠΈΡˆΠ΅ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΉ болСзнью сСрдца с Π³Π»Π°ΡƒΠΊΠΎΠΌΠΎΠΉ

    Parallel Combining: Making Use of Free Cycles

    No full text

    Scalable belief propagation via relaxed scheduling

    No full text
    The ability to leverage large-scale hardware parallelism has been one of the key enablers of the accelerated recent progress in machine learning. Consequently, there has been considerable effort invested into developing efficient parallel variants of classic machine learning algorithms. However, despite the wealth of knowledge on parallelization, some classic machine learning algorithms often prove hard to parallelize efficiently while maintaining convergence. In this paper, we focus on efficient parallel algorithms for the key machine learning task of inference on graphical models, in particular on the fundamental belief propagation algorithm. We address the challenge of efficiently parallelizing this classic paradigm by showing how to leverage scalable relaxed schedulers in this context. We present an extensive empirical study, showing that our approach outperforms previous parallel belief propagation implementations both in terms of scalability and in terms of wall-clock convergence time, on a range of practical applications

    Provably and Practically Efficient Granularity Control

    Get PDF
    International audienceOver the past decade, many programming languages and systems for parallel-computing have been developed, e.g., Fork/Join and Habanero Java, Parallel Haskell, Parallel ML, and X10. Although these systems raise the level of abstraction for writing parallel codes, performance continues to require labor-intensive optimizations for coarsening the granularity of parallel executions. In this paper, we present provably and practically efficient techniques for controlling granularity within the run-time system of the language. Our starting point is "oracle-guided scheduling", a result from the functional-programming community that shows that granularity can be controlled by an "oracle" that can predict the execution time of parallel codes. We give an algorithm for implementing such an oracle and prove that it has the desired theoretical properties under the nested-parallel programming model. We implement the oracle in C++ by extending Cilk and evaluate its practical performance. The results show that our techniques can essentially eliminate hand tuning while closely matching the performance of hand tuned codes
    corecore